package com.cruise.game.service.admin;

import com.cruise.game.model.param.admin.AnnouncementCreateParam;
import com.cruise.game.model.vo.admin.AnnouncementVO;
import com.cruise.game.model.vo.common.PageResult;

/**
 * 管理员通告服务接口
 * 
 * @author cruise
 * @date 2025-02-28
 */
public interface AdminAnnouncementService {

    /**
     * 获取通告列表
     *
     * @param status 状态
     * @param page 页码
     * @param pageSize 每页条数
     * @return 通告列表
     */
    PageResult<AnnouncementVO> getAnnouncementList(String status, Integer page, Integer pageSize);

    /**
     * 获取通告详情
     *
     * @param id 通告ID
     * @return 通告详情
     */
    AnnouncementVO getAnnouncementDetail(Long id);

    /**
     * 创建通告
     *
     * @param param 创建参数
     * @return 通告ID
     */
    Long createAnnouncement(AnnouncementCreateParam param);

    /**
     * 更新通告
     *
     * @param id 通告ID
     * @param param 更新参数
     * @return 是否成功
     */
    boolean updateAnnouncement(Long id, AnnouncementCreateParam param);

    /**
     * 删除通告
     *
     * @param id 通告ID
     * @return 是否成功
     */
    boolean deleteAnnouncement(Long id);

    /**
     * 更新通告状态
     *
     * @param id 通告ID
     * @param status 状态
     * @return 是否成功
     */
    boolean updateAnnouncementStatus(Long id, String status);
}
